﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
//#include <vector>
#include <string>
#include <set>
//#include <algorithm>
//#include <cassert>
//#include <cstring>
//#include <list>
using namespace std;

//最难的问题
//https://www.nowcoder.com/questionTerminal/9f6b8f6ec26d44cfb8fc8c664b0edb6b
//int main()
//{
//    string s;
//    while (getline(cin, s))
//    {
//        string tmp;
//        tmp.reserve(s.size());
//        for (const auto& c : s)
//        {
//            if (c >= 'A' && c <= 'Z')
//            {
//                char ch = c;
//                ch -= 5;
//                if (ch < 65)
//                {
//                    ch += 26;
//                }
//                tmp.push_back(ch);
//            }
//            else
//            {
//                tmp.push_back(c);
//            }
//        }
//        cout << tmp << endl;
//    }
//    return 0;
//}

//因子个数
//https://www.nowcoder.com/questionTerminal/e8fb8f89f5d147ec92fd8ecfefe89b0d?f=discussion
//int main()
//{
//    long num = 0;//求一组中所有的最小因子数
//    //例如30可以分为5和6而6可以分为2和3最终因子数为2 3 5要分到最细且不能重复
//    while (cin >> num)
//    {
//        int count = 0;
//        //需要使用sqrt开方，否则冗余遍历，其因子大部分都是2-9
//        for (int i = 2; i < sqrt(num); ++i)
//        {
//            if (num % i == 0)
//            {
//                while (num % i == 0) num /= i; //除以i如果可以除一直除到不能除余为止
//                ++count;
//            }
//        }
//        if (num != 1) ++count; //如果退出时num不是1则表示当前num也是该数的因子
//        cout << count << endl;
//    }
//    return 0;
//}

